package main;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.BaseFont;

import cn.ideaframe.core.util.DataRow;
import cn.ideaframe.core.util.DataTable;

public class TestUtil {

	public static void main(String[] args) {
		
	
		DataTable datalist=new DataTable();
		for(int i=0;i<10;i++){
			datalist.AddColumns("name"+i);
		}
		for(int i=0;i<20;i++){
			DataRow dr=datalist.NewRow();
			dr.AddColumn(0, "A");
			dr.AddColumn(1, "A1");
			dr.AddColumn(2, "A2");
			for(int j=3;j<7;j++){
				dr.AddColumn(j, "A"+i+"-"+j);
				
			}
			for(int j=7;j<10;j++){
				dr.AddColumn(j, "2016年10月11日 11:11:11");				
			}
			try {
				datalist.AddRow(dr);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		for(int i=0;i<200;i++){
			DataRow dr=datalist.NewRow();
			dr.AddColumn(0, "B");
			dr.AddColumn(1, "B1");
			dr.AddColumn(2, "B2");
			for(int j=3;j<10;j++){
				dr.AddColumn(j, "B"+i+"-"+j);
				
			}
			try {
				datalist.AddRow(dr);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		for(int i=0;i<100;i++){
			DataRow dr=datalist.NewRow();
			dr.AddColumn(0, "C");
			dr.AddColumn(1, "C1");
			dr.AddColumn(2, "C2");
			for(int j=3;j<10;j++){
				dr.AddColumn(j, "C"+i+"-"+j);
				
			}
			try {
				datalist.AddRow(dr);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		HeaderEx headerEx;
		List<HeaderEx> lstHeaders=new ArrayList<HeaderEx>();
		
		headerEx=new HeaderEx();
		headerEx.setRowSpan(2);
		headerEx.setNameText("序号1");
		headerEx.setHeight(20);
		headerEx.setHorAlignment(Element.ALIGN_CENTER);
		
		lstHeaders.add(headerEx);
		
		headerEx=new HeaderEx();
		//headerEx.setColSpan(2);
		headerEx.setNameText("合并2-3");
		headerEx.setHeight(20);
		lstHeaders.add(headerEx);
		
		headerEx=new HeaderEx();
		//headerEx.setColSpan(2);
		headerEx.setNameText("合并2-3");
		headerEx.setHeight(20);
		lstHeaders.add(headerEx);
		
		headerEx=new HeaderEx();
		headerEx.setNameText("序号4");
		headerEx.setHeight(20);
		lstHeaders.add(headerEx);
		
		
		headerEx=new HeaderEx();
		headerEx.setNameText("序号5");
		headerEx.setHeight(20);
		lstHeaders.add(headerEx);
		
		
		headerEx=new HeaderEx();
		headerEx.setNameText("序号12");
		headerEx.setHeight(20);
		lstHeaders.add(headerEx);
		headerEx=new HeaderEx();
		headerEx.setNameText("序号13");
		headerEx.setHeight(20);
		lstHeaders.add(headerEx);
		headerEx=new HeaderEx();
		headerEx.setNameText("序号14");
		headerEx.setHeight(20);
		lstHeaders.add(headerEx);
		headerEx=new HeaderEx();
		headerEx.setNameText("序号15");
		headerEx.setHeight(20);
		lstHeaders.add(headerEx);
		
		ColumnEx columnEx;
		List<ColumnEx> lstColumns=new ArrayList<ColumnEx>();
		
		columnEx=new ColumnEx("name3", "");
		columnEx.setWidth(1);
		lstColumns.add(columnEx);
		
		columnEx=new ColumnEx("name4", "");
		columnEx.setWidth(1);
		lstColumns.add(columnEx);
		
		
		columnEx=new ColumnEx("name5", "");
		columnEx.setWidth(2);
		lstColumns.add(columnEx);
		
		columnEx=new ColumnEx("name6", "");
		columnEx.setWidth(1);
		lstColumns.add(columnEx);
		
		columnEx=new ColumnEx("name7", "");
		columnEx.setWidth(2);
		columnEx.setHorAlignment(Element.ALIGN_RIGHT);
		columnEx.setDataType(SimpDataType.dateType);
		columnEx.setFormatStr("yyyy年MM月dd日");
		lstColumns.add(columnEx);
		
		DataTable headers=new DataTable();
		for(int i=0;i<10;i++){
			headers.AddColumns("name"+i);
		}
		try {
			DataRow dr=headers.NewRow();
			dr.AddColumn(0, "A");
			dr.AddColumn(1, "A1");
			dr.AddColumn(2, "A2");
			for(int i=3;i<10;i++){
				dr.AddColumn(i, "headerA"+i);
			}
			headers.AddRow(dr);
			dr=headers.NewRow();
			dr.AddColumn(0, "B");
			dr.AddColumn(1, "B1");
			dr.AddColumn(2, "B2");
			for(int i=3;i<10;i++){
				dr.AddColumn(i, "headerB"+i);
			}
			headers.AddRow(dr);
			dr=headers.NewRow();
			dr.AddColumn(0, "C");
			dr.AddColumn(1, "C1");
			dr.AddColumn(2, "C2");
			for(int i=3;i<10;i++){
				dr.AddColumn(i, "headerC"+i);
			}
			headers.AddRow(dr);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		DataTable footers=new DataTable();
		for(int i=0;i<10;i++){
			footers.AddColumns("name"+i);
		}
		try {
			DataRow dr=footers.NewRow();
			dr.AddColumn(0, "A");
			dr.AddColumn(1, "A1");
			dr.AddColumn(2, "A2");
			for(int i=3;i<5;i++){
				dr.AddColumn(i, "headerA"+i);
			}
			dr.AddColumn(5, "E:\\OA首页.jpg");
			footers.AddRow(dr);
			dr=footers.NewRow();
			dr.AddColumn(0, "B");
			dr.AddColumn(1, "B1");
			dr.AddColumn(2, "B2");
			for(int i=3;i<5;i++){
				dr.AddColumn(i, "headerB"+i);
			}
			dr.AddColumn(5, "E:\\OA首页.jpg");
			footers.AddRow(dr);
			dr=footers.NewRow();
			dr.AddColumn(0, "C");
			dr.AddColumn(1, "C1");
			dr.AddColumn(2, "C2");
			for(int i=3;i<5;i++){
				dr.AddColumn(i, "headerC"+i);
			}
			dr.AddColumn(5, "E:\\OA首页.jpg");
			footers.AddRow(dr);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		
		
		String pagecon="name0",headercon="name0",footercon="name0",filepath="E:\\POReceiveReport.pdf";
		
		List<HeaderFooterModel> headerModels=new ArrayList<>();
		HeaderFooterModel headermodel=new HeaderFooterModel();
		headermodel.setColumnname("name1");
		headermodel.setName("头头0:");
		headermodel.setOffsetx(5);
		headerModels.add(headermodel);
		
		headermodel=new HeaderFooterModel();
		headermodel.setColumnname("name2");
		headermodel.setName("头头1:");
		headermodel.setOffsetx(5);
		headerModels.add(headermodel);
		
		headermodel=new HeaderFooterModel();
		headermodel.setColumnname("name3");
		headermodel.setName("头头2:");
		headermodel.setOffsetx(5);
		headerModels.add(headermodel);
		
		headermodel=new HeaderFooterModel();
		headermodel.setColumnname("name4");
		headermodel.setName("头头3:");
		headermodel.setOffsetx(5);
		headerModels.add(headermodel);
		
		headermodel=new HeaderFooterModel();
		headermodel.setColumnname("name5");
		headermodel.setName("头头4:");
		headermodel.setOffsetx(5);
		headerModels.add(headermodel);
		
		
		List<Integer> headerColumns=new ArrayList<>();
		headerColumns.add(2);
		headerColumns.add(3);
		
		
		
		
		 List<HeaderFooterModel> footerModels=new ArrayList<>();
		 HeaderFooterModel footermodel=new HeaderFooterModel();
		 footermodel.setColumnname("name1");
		 footermodel.setName("脚0:");
		 footermodel.setOffsetx(5);
		 footerModels.add(footermodel);
			
		 footermodel=new HeaderFooterModel();
		 footermodel.setColumnname("name2");
		 footermodel.setName("脚1:");
		 footermodel.setOffsetx(5);
		 footerModels.add(footermodel);
			
		 footermodel=new HeaderFooterModel();
		 footermodel.setColumnname("name3");
		 footermodel.setName("脚2:");
		 footermodel.setOffsetx(5);
		 footerModels.add(footermodel);
			
		 footermodel=new HeaderFooterModel();
		 footermodel.setColumnname("name4");
		 footermodel.setName("脚3:");
		 footermodel.setOffsetx(5);
		 footerModels.add(footermodel);
			
		 footermodel=new HeaderFooterModel();
		 footermodel.setColumnname("name5");
		 footermodel.setName("脚4:");
		 footermodel.setSimpDataType(SimpDataType.imgType);
		 footermodel.setOffsetx(-15);
		 footermodel.setOffsety(-15);
		 footerModels.add(footermodel);
		 
		 
		List<Integer> footerColumns=new ArrayList<>();
		footerColumns.add(2);
		footerColumns.add(3);
		
		
		DocumentInfo docInfo=new DocumentInfo();
		docInfo.setPageSize(PageSize.A4);
		docInfo.setBottomMargin(70);
		docInfo.setTopMargin(70);
		docInfo.setLeftMargin(40);
		docInfo.setRightMargin(20);
		docInfo.setHor(true);
		docInfo.setDefFontSize(8);
		docInfo.sethFHeight(15);
		docInfo.setHeaderTop(20);
		docInfo.setFooterBottom(20);
		docInfo.setTitle("标题%s");
		docInfo.setTitleSize(12);
		docInfo.setTitleHeight(20);
		docInfo.setTitleTop(20);
		docInfo.setFontpath("C:/WINDOWS/Fonts/SIMSUN.TTC,1");
		docInfo.setFooterColumns(footerColumns);
		docInfo.setFooterModels(footerModels);
		docInfo.setHeaderColumns(headerColumns);
		docInfo.setHeaderModels(headerModels);
		docInfo.setRowHeight(10);
		docInfo.setHeaderlst(lstHeaders);
		docInfo.setColumnlst(lstColumns);
		docInfo.setHeaderRow(2);
		docInfo.setHeadercon(headercon);
		docInfo.setFootercon(footercon);
		docInfo.setTitlecon("name0");
		docInfo.setPagecon(pagecon);
		docInfo.setBlankRow(true);
		PDFReportUtil utile=new PDFReportUtil(docInfo);
		
		
		
		
		utile.genPDF(datalist, headers, footers, filepath);
	}

}
